﻿var AccesoRegistro;
$(document).ready(function () {
    var _PAGE = function () {
        this.AccesoRegistro = "";
    };

    function AccesoRegistro() {

        this.Prod_Codigo = "";

        this.PreInit = function () {
            var _parent = this;

            //Cuando llega un programa desde la pagina web.
            if (_parent._getCont().find("#existeConvocatoriaDefault").val() == "1") {
                _parent._getCont().find("#ListaConvocatorias").hide();
                _parent._getCont().find("#ConvocatoriaDefautl").show();
            } else {
                _parent._getCont().find("#ListaConvocatorias").show();
                _parent._getCont().find("#ConvocatoriaDefautl").hide();
            }

            _parent.ValidacionCamposForm();
            _parent._CargarEventos();
        }


        this.ValidacionCamposForm = function () {
            var _parent = this;

            _parent._getForm().find("#Clie_Nombre").addClass("validate[required]");
            _parent._getForm().find("#Clie_ApePaterno").addClass("validate[required]");
            _parent._getForm().find("#Clie_ApeMaterno").addClass("validate[required]");
            _parent._getForm().find("#Clie_TipDocIden").addClass("validate[required]");
            _parent._getForm().find("#Clie_NumDocIden").addClass("validate[required]");
            _parent._getForm().find("#Clie_Email01").addClass("validate[required,custom[email]]");
            _parent._getForm().find("#UserName").addClass("validate[required]");
            _parent._getForm().find("#Password").addClass("validate[required]");
            _parent._getForm().find("#Clie_Sexo").addClass("validate[required]");
            _parent._getForm().find(".clsCodigo_convocatoria").addClass("validate[required]");
            _parent._getForm().find(".clsCodigo_convocatoria");
        }

        this.__VerificarNumeroDoc = function (obj, funExito, funError) {
            var _parent = this;

            var numero = obj.val();

            $.ajax({
                type: "post",
                url: URL_PAGE + "Account/VerificarNumeroDoc",
                data: { numeroDoc: numero },
                success: function (data) {
                    if (data.existeEmail) {
                        _parent._MensajesOperacion("error", "Número de documento", "El número de documento ya se encuentra registrado");
                        obj.val("");
                        if (funError) {
                            funError();
                        }
                    } else {

                        if (funExito) {
                            funExito();
                        }
                    }
                }
            });

        };

        this._CargarEventos = function () {
            var _parent = this;

            //Eventos del formulario de inscripcion y de acceso
            _parent._getCont().find("#ver-mas-programas").click(function (event) {
                event.preventDefault();
                _parent._getCont().find("#ListaConvocatorias").slideDown();
                _parent._getCont().find("#ConvocatoriaDefautl").slideUp();
            });

            _parent._getCont().find(".convocatoria").click(function (event) {
                event.preventDefault();
                var obj = $(this);
                obj.find(".clsCodigo_convocatoria").attr("checked", "checked");

                $.each(_parent._getCont().find(".convocatoria"), function (index, value) {
                    $(value).removeClass("convocatoria-verde");
                });
                obj.addClass("convocatoria-verde");

            });

            _parent._getCont().find("#solicitar-informacion").click(function (event) {
                event.preventDefault();
                var redireccion = "";


                switch (_parent.Prod_Codigo) {
                    case 'MADTI':
                        redireccion = "http://www.esan.edu.pe/maestrias/direccion-de-tecnologias-de-informacion/solicitud-de-informacion/";
                        break;
                    case 'MAGE':
                        redireccion = "http://www.esan.edu.pe/maestrias/gestion-de-la-energia/solicitud-de-informacion/";
                        break;
                    case 'MAODP':
                        redireccion = "http://www.esan.edu.pe/maestrias/organizacion-y-direccion-de-personas/solicitud-de-informacion/";
                        break;
                }

                window.location = redireccion;
            });


            //Activando el formulario cuando se activa la cuenta 
            _parent._getForm().find("#tengo-cuenta").click(function () {
                _parent._getForm().find("#AccesoLogin").val("1");
                _parent._getForm().find("#UserName").val(_parent._getForm().find("#Clie_Email01").val());

                _parent._getForm().find("#frmRegistro").slideUp();
                _parent._getForm().find("#frmLogin").slideDown();
            });

            //Activando el formulario cuando no se tiene la cuenta activada
            _parent._getForm().find("#no-tengo-cuenta").click(function () {
                _parent._getForm().find("#AccesoLogin").val("0");
                _parent._getForm().find("#frmRegistro").slideDown();
                _parent._getForm().find("#frmLogin").slideUp();
            });

            _parent._getCont().find(".enviar-clave-acceso").click(function (e) {
                e.preventDefault();
                $.ajax({
                    url: URL_PAGE + "Account/EnviarClaveAcceso",
                    data: {},
                    success: function (data) {

                        var modal = _parent._getModal(data);

                        modal.find(".modal-header").find("h2").html("Recordar mi clave de acceso");

                        modal.find(".modal-footer").find("#aceptar").unbind('click');
                        modal.find(".modal-footer").find("#aceptar").click(function () {
                            modal.find(".modal-body").find("#frmEnviarClaveAcceso").submit();
                        });

                        _parent.__cargarFormularioEnvioClave(modal)

                        modal.modal();
                    }
                })
            })


            //Verificar que no se duplique el correo en los accesos
            _parent._getForm().find("#Clie_NumDocIden").blur(function () {
                _parent.__VerificarNumeroDoc($(this))
            });

            //Verificar que no se duplique el correo en los accesos
            _parent._getForm().find("#Clie_Email01").blur(function () {
                _parent.__VerificarCorreo($(this).val())
            });


            var inscripcion = _parent._getCont().find("#_FormInscripcion");

            inscripcion.find("#UserName").addClass("validate[required]");
            inscripcion.find("#Password").addClass("validate[required]");
            inscripcion.validationEngine({
                promptPosition: "topLeft"
            });

            //Enviar los datos del formulario de inscripcion.
            _parent._getForm().validationEngine({
                promptPosition: "topLeft"
                , 'custom_error_messages': {
                    '.clsCodigo_convocatoria': {
                        'required': {
                            'message': "Seleccione un programa a postular"
                        }
                    }
                },
                onValidationComplete: function (form, status) {
                    if (status) {
                        //Para acceso con login                         
                        if (_parent._getForm().find("#AccesoLogin").val() == "1") {
                            _parent._getForm().ajaxSubmit({
                                success: function (responseText, statusText, xhr, $form) {
                                    if (responseText.accesoCorrecto) {
                                        window.location = URL_PAGE + "Postulante/Inicio/Index?codConvocatoria=" + jQuery('.clsCodigo_convocatoria:checked').val();
                                    } else {
                                        _parent._MensajesOperacion("error", "Error de acceso", "Su email y/o clave no son correctos");
                                    }
                                }
                            });
                        } else {
                            //Para acceso con login

                            var numerodocumento = jQuery("#Clie_NumDocIden");
                            _parent.__VerificarCorreo(jQuery("#Clie_Email01").val(), function () {
                                _parent.__VerificarNumeroDoc(numerodocumento, function () {

                                    //Confirmando la postulación
                                    var producto = _parent._getCont().find(".convocatoria :checked")
                                    //                                    if (confirm("Confirma su inscripción a la " + producto.attr("data-nombrelargo"))) {
                                    //                                    
                                    //                                    }

                                    var confirmacion = _parent._MensajeConfirmacion();
                                    confirmacion.titulo = "Confirmaci&oacute;n de inscripci&oacute;n";
                                    confirmacion.contenido = "Esta seguro de inscribirse a la <br/><b>" + producto.attr("data-nombrelargo")+"</b>";
                                    confirmacion.yes = function () {
                                        _parent._getForm().validationEngine("detach");
                                        _parent._getForm().submit();
                                    };
                                    confirmacion.modal();
                                });
                            });

                        }
                    }
                }
            });
        }


        this.__VerificarCorreo = function (email, funExito, funError) {
            var _parent = this;

            $.ajax({
                type: "post",
                url: URL_PAGE + "Account/VerificarEmailRegistrado",
                data: { email: email },
                success: function (data) {
                    if (data.existeEmail) {
                        var modal = _parent._getModal(_parent._getCont().find("#mdlExisteCorreo").html());
                        //Cambiando el titulo del modal y el cuerpo
                        modal.find(".modal-header").find("h2").html("El email ya se encuentra registrado");
                        modal.find(".modal-body").html();

                        //Modificando los eventos de los botones
                        modal.find("#aceptar").hide();

                        modal.modal();
                    } else {

                        if (funExito)
                            funExito();
                    }
                }
            });
        };

        this.__cargarFormularioEnvioClave = function (modal) {
            var form = modal.find("#frmEnviarClaveAcceso");

            form.find("#email").addClass("validate[required]");
            form.validationEngine({
                promptPosition: "topLeft",
                ajaxSubmit: true,
                onValidationComplete: function (form, status) {

                    if (status) {
                        form.ajaxSubmit({
                            success: function (responseText, statusText, xhr, $form) {
                                if (responseText.seEncontroCliente) {
                                    alert("Se le envio la clave de acceso al correo ingresado");
                                    modal.modal("hide");
                                } else {
                                    alert("Este correo no existe en nuestra base de datos");
                                }
                            }
                        });
                    }
                }
            });
        }
    }



    AccesoRegistro.prototype = new Mantenimiento();
    _PAGE.AccesoRegistro = new AccesoRegistro();
    //Inicializando
    var _Urls = Urls;
    _Urls.Register = URL_PAGE + "Postulante/Inscripcion/RegistrarCliente";

    _PAGE.AccesoRegistro.Prod_Codigo = $("#_Acceso").find("#Prod_Codigo").val();
    _PAGE.AccesoRegistro.Init($("#_Acceso"), _Urls, "All");



})